Groovy একটি ডাইনামিক টাইপিং ভাষা, যার মানে হলো ভেরিয়েবলগুলির জন্য টাইপের ঘোষণা করার প্রয়োজন নেই। Groovy নিজেই রানটাইমে ভেরিয়েবলের টাইপ নির্ধারণ করে। তবে, Groovy এর বিভিন্ন ধরনের ডেটা টাইপ এবং ভেরিয়েবল সম্পর্কে জানাটা গুরুত্বপূর্ণ।
Groovy তে কিছু মৌলিক ডেটা টাইপ রয়েছে, তবে Groovy Java এর মতো অন্যান্য ডেটা টাইপের সাথেও কাজ করতে পারে। এখানে Groovy তে ব্যবহৃত প্রধান ডেটা টাইপগুলোর কিছু উদাহরণ দেওয়া হলো:
স্ট্রিং হল অক্ষরের একটি সিকোয়েন্স। Groovy তে স্ট্রিং লিটারেল ডাবল কোটস (" "
) দিয়ে সংজ্ঞায়িত করা হয়।
def greeting = "Hello, Groovy!"
println greeting // Output: Hello, Groovy!
এছাড়া, স্ট্রিং ইন্টারপোলেশন Groovy তে খুব সহজ:
def name = "Groovy"
def message = "Welcome to $name!"
println message // Output: Welcome to Groovy!
Groovy তে পূর্ণসংখ্যা বা ইন্টিজার ডেটা টাইপের জন্য int
বা Integer
ব্যবহার করা হয়। Groovy ডাইনামিক টাইপিং ব্যবহার করে, তাই int
টাইপের ভেরিয়েবল ডিক্লেয়ার করার সময় টাইপ উল্লেখ করার প্রয়োজন হয় না।
def number = 10
println number // Output: 10
ফ্লোট হল দশমিক সংখ্যা (যেমন 3.14)। Groovy তে ফ্লোট টাইপের জন্য float
বা double
ব্যবহার করা হয়।
def price = 19.99
println price // Output: 19.99
Groovy তে boolean
টাইপ শুধুমাত্র দুইটি মান নিতে পারে: true
বা false
। এটি সাধারণত লজিক্যাল পরীক্ষার জন্য ব্যবহৃত হয়।
def isActive = true
println isActive // Output: true
Groovy তে Object
হল সর্বজনীন ডেটা টাইপ, এবং এটি Java এর Object
ক্লাসের মতো কাজ করে। Object
টাইপের মাধ্যমে আপনি যেকোনো ডেটা টাইপ সংরক্ষণ করতে পারেন।
def obj = new Date() // Date অবজেক্ট
println obj // Output: Current date and time
Groovy তে অ্যারের জন্য সাধারণভাবে Array
ক্লাস ব্যবহৃত হয়। Groovy তে, আপনি একটি অ্যারে তৈরি করতে পারেন এবং তার উপাদানগুলির ধরন নির্ধারণ না করেও সেগুলি ব্যবহার করতে পারেন।
def numbers = [1, 2, 3, 4, 5]
println numbers // Output: [1, 2, 3, 4, 5]
Groovy তে একটি ম্যাপ একটি কীগুলির সেট যা মানের সাথে যুক্ত থাকে। একটি ম্যাপ পেয়ার হিসেবে কীগুলির মান সংরক্ষণ করে। Groovy তে ম্যাপ [:]
দিয়ে ডিক্লেয়ার করা হয়।
def person = [name: "John", age: 30]
println person['name'] // Output: John
Groovy তে সেট একটি কালেকশন টাইপ যা শুধুমাত্র অনন্য উপাদান ধারণ করে। এটি ডুপ্লিকেট উপাদান রাখে না।
def set = [1, 2, 3, 3, 4] as Set
println set // Output: [1, 2, 3, 4]
Groovy তে ভেরিয়েবল ডিক্লেয়ার করার জন্য def
কীওয়ার্ড ব্যবহার করা হয়। এটি ডাইনামিক টাইপিংয়ের মাধ্যমে ভেরিয়েবলের টাইপ নির্ধারণ করে।
Groovy তে একটি ভেরিয়েবল ডিক্লেয়ার করতে শুধু def
কীওয়ার্ড এবং ভেরিয়েবলের নাম ব্যবহার করা হয়। ভেরিয়েবলটি ইনিশিয়ালাইজ করার সময় তা স্বয়ংক্রিয়ভাবে তার টাইপ নির্ধারণ করে।
def name = "John"
def age = 30
def height = 5.9
যদিও Groovy ডাইনামিক টাইপিং ভাষা, আপনি চাইলে টাইপ নির্ধারণ করতে পারেন। যেমন, String
বা int
টাইপ ব্যবহার করা।
String name = "John"
int age = 30
Groovy তে কনস্ট্যান্ট ভেরিয়েবল তৈরি করতে final
কীওয়ার্ড ব্যবহার করা হয়। একবার কনস্ট্যান্ট ভেরিয়েবল ইনিশিয়ালাইজ হলে, আপনি এর মান পরিবর্তন করতে পারবেন না।
final int MAX_VALUE = 100
Groovy তে গ্লোবাল ভেরিয়েবল সেট করা যেতে পারে, তবে এটি সাধারণত স্ক্রিপ্ট বা মেথডের বাইরে থাকে এবং কোডের সকল স্থানে এক্সেস করা যায়।
def globalVar = "I am global"
def printGlobalVar() {
println globalVar // Accessing global variable inside a method
}
printGlobalVar() // Output: I am global
Groovy তে ভেরিয়েবলগুলি স্কোপে নির্ভর করে। স্কোপ হলো যেখানে একটি ভেরিয়েবল বা ফাংশন অ্যাক্সেসযোগ্য। Groovy তে ভেরিয়েবলগুলির প্রধান স্কোপ হচ্ছে:
Groovy তে যদি আপনি একটি ভেরিয়েবল ডিক্লেয়ার করেন তবে সেটি একটি ডিফল্ট মান গ্রহণ করবে (যেমন null
বা 0
):
def number
println number // Output: null
def count = 10
println count // Output: 10
Groovy তে ডেটা টাইপ এবং ভেরিয়েবল ডিক্লেয়ারেশন Java এর তুলনায় অনেক সহজ। Groovy ডাইনামিক টাইপিং ব্যবহার করে, যা আপনাকে টাইপ উল্লেখ না করেও ভেরিয়েবল ব্যবহার করতে দেয়। Groovy তে স্ট্রিং, ইন্টিজার, ফ্লোট, বুলিয়ান, ম্যাপ, সেট, এবং অ্যারের মতো প্রাথমিক ডেটা টাইপ ব্যবহার করা হয়। Groovy ভেরিয়েবলগুলো সাধারণত def
দিয়ে ডিক্লেয়ার করা হয়, এবং এটি ডাইনামিকভাবে টাইপ নির্ধারণ করে। Groovy এর সহজ সিনট্যাক্স এবং নমনীয়তা ডেভেলপমেন্ট প্রক্রিয়াকে দ্রুত এবং কার্যকরী করে তোলে।
Groovy তে Java এর মতোই প্রিমিটিভ এবং অবজেক্ট ডেটা টাইপ রয়েছে। Java তে প্রিমিটিভ ডেটা টাইপগুলি সরাসরি মেমোরিতে স্টোর হয় এবং এদের সাথে সম্পর্কিত কোনো অবজেক্ট থাকে না। তবে Groovy তে প্রিমিটিভ টাইপগুলি স্বয়ংক্রিয়ভাবে অবজেক্ট টাইপে কনভার্ট হয়, যা অটো-বক্সিং নামে পরিচিত।
Groovy তে ডেটা টাইপগুলি দুটি প্রধান ক্যাটাগরিতে ভাগ করা যায়:
প্রিমিটিভ ডেটা টাইপগুলি সরাসরি মেমোরিতে স্টোর হয় এবং এগুলি সাধারণত ছোট আকারের এবং কম মেমোরি ব্যবহার করে। Groovy তে প্রিমিটিভ টাইপগুলো Java এর প্রিমিটিভ টাইপগুলির মতোই, যেমন:
ডেটা টাইপ | ব্যাখ্যা | উদাহরণ |
---|---|---|
byte | 8-বিট সাইনড ইন্টিজার | byte b = 1 |
short | 16-বিট সাইনড ইন্টিজার | short s = 10 |
int | 32-বিট সাইনড ইন্টিজার | int i = 100 |
long | 64-বিট সাইনড ইন্টিজার | long l = 1000L |
float | 32-বিট IEEE 754 ফ্লোটিং পয়েন্ট | float f = 1.23F |
double | 64-বিট IEEE 754 ফ্লোটিং পয়েন্ট | double d = 2.34 |
char | 16-বিট Unicode ক্যারেক্টার | char c = 'A' |
boolean | true অথবা false মান ধারণ করে | boolean b = true |
Groovy তে এই প্রিমিটিভ ডেটা টাইপগুলো ব্যবহার করা গেলেও, এগুলি সাধারণত Object ডেটা টাইপে রূপান্তরিত হয়।
Groovy তে প্রতিটি প্রিমিটিভ টাইপের সাথে সংশ্লিষ্ট অবজেক্ট টাইপ রয়েছে। এই অবজেক্ট টাইপগুলি Java এর Wrapper classes এর সাথে সাদৃশ্যপূর্ণ। উদাহরণস্বরূপ, int
এর অবজেক্ট টাইপ Integer
এবং boolean
এর অবজেক্ট টাইপ Boolean
। এই অবজেক্ট টাইপগুলোর সাহায্যে প্রিমিটিভ টাইপের উপর বিভিন্ন মেথড ব্যবহার করা যায়।
Primitive Type | Object Type (Wrapper Class) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
উদাহরণস্বরূপ:
int num = 10 // Primitive type
Integer numObj = num // Autoboxing to Object type
println numObj.class // Output: class java.lang.Integer
Groovy তে প্রিমিটিভ টাইপ অটোমেটিক্যালি অবজেক্ট টাইপে কনভার্ট হয় যখন প্রয়োজন হয় এবং এটিকে Autoboxing বলে। আবার অবজেক্ট টাইপকে প্রিমিটিভ টাইপেও পরিবর্তন করা যায় এবং এটি Unboxing নামে পরিচিত।
Groovy তে Autoboxing এবং Unboxing স্বয়ংক্রিয়ভাবে ঘটে। যখন প্রিমিটিভ টাইপের একটি ভেরিয়েবলকে অবজেক্ট টাইপে কনভার্ট করতে হয়, তখন Groovy এটি স্বয়ংক্রিয়ভাবে করে থাকে। একইভাবে, অবজেক্ট টাইপকে প্রিমিটিভ টাইপে রূপান্তরিত করাও স্বয়ংক্রিয়ভাবে করা হয়।
int num = 100 // Primitive type
Integer objNum = num // Autoboxing
int newNum = objNum // Unboxing
println newNum // Output: 100
পার্থক্য: Autoboxing এবং Unboxing এর মাধ্যমে Groovy তে প্রিমিটিভ এবং অবজেক্ট টাইপ একে অপরের সাথে মিশ্রিতভাবে ব্যবহার করা যায়, যা কোডিংকে আরও সহজ এবং কার্যকর করে তোলে।
Groovy তে String
একটি বিশেষ ধরনের Object ডেটা টাইপ। এটি Immutable অর্থাৎ, এর মান পরিবর্তন করা যায় না। String
এ স্ট্রিং ইন্টারপোলেশন ব্যবহার করা যায়, যা কোডিংকে আরও সুবিধাজনক করে তোলে।
String name = "Groovy"
println "Hello, $name!" // Output: Hello, Groovy!
Groovy তে স্ট্রিং এর ম্যানিপুলেশন সহজ এবং এটি ডায়নামিক ভাবে স্ট্রিং এর মেথড ব্যবহার করতে পারে।
def
ব্যবহারGroovy তে def
ব্যবহার করে ভেরিয়েবল ডিক্লার করতে গেলে এটি ডাইনামিক টাইপ ধারণ করে, অর্থাৎ যে কোনো টাইপের মান সংরক্ষণ করতে পারে।
def age = 30 // Integer type
age = "Thirty" // String type
println age // Output: Thirty
উল্লেখযোগ্য দিক: Java তে ভেরিয়েবল টাইপ একবার নির্ধারিত হলে পরিবর্তন করা যায় না, কিন্তু Groovy তে def
ব্যবহার করলে টাইপ পরিবর্তন করা সম্ভব।
Groovy তে Primitive এবং Object টাইপগুলির মিশ্রণ Java থেকে সহজ এবং ব্যবহারবান্ধব। প্রিমিটিভ ডেটা টাইপের উপর ভিত্তি করে Object টাইপগুলি ম্যানেজ করা সহজ এবং Dynamic Typing এবং Autoboxing সুবিধাগুলি প্রোগ্রামিংকে আরও নমনীয় করে তোলে।
Groovy (এবং অন্যান্য প্রোগ্রামিং ভাষা) তে ভেরিয়েবল ডিক্লারেশন এবং ইনিশিয়ালাইজেশন একটি গুরুত্বপূর্ণ ধারণা। এগুলি প্রোগ্রামে ডেটা স্টোর করার জন্য ব্যবহৃত হয়। ভেরিয়েবল হল এমন একটি সত্তা যা একটি নির্দিষ্ট ডেটা বা মান ধারণ করে এবং এর মাধ্যমে সেই ডেটাকে প্রোগ্রামে ব্যবহার করা হয়।
Groovy তে ভেরিয়েবল ডিক্লারেশন এবং ইনিশিয়ালাইজেশন অনেকটাই সহজ এবং সংক্ষিপ্ত, যা কোড লেখাকে আরও দ্রুত এবং সহজ করে তোলে।
ভেরিয়েবল ডিক্লারেশন হল একটি ভেরিয়েবল তৈরি করা এবং এটি একটি নির্দিষ্ট ডেটা টাইপের মধ্যে অন্তর্ভুক্ত করা। Groovy তে ডাইনামিক টাইপিং ব্যবহৃত হয়, অর্থাৎ ভেরিয়েবলটি ডিক্লেয়ার করার সময় তার টাইপ সুনির্দিষ্ট করা হয় না। Groovy এ, def
কীওয়ার্ড ব্যবহার করে ভেরিয়েবল ডিক্লেয়ার করা হয়, যা টাইপের প্রতি কোনো নির্দিষ্টতা না রেখে ডাইনামিকভাবে টাইপকে সংজ্ঞায়িত করে।
ভেরিয়েবল ডিক্লারেশনের উদাহরণ:
def name // ভেরিয়েবল ডিক্লেয়ারেশন
def age
এখানে name
এবং age
দুটি ভেরিয়েবল ডিক্লেয়ার করা হয়েছে, কিন্তু তাদের মান নির্ধারণ করা হয়নি।
ভেরিয়েবল ইনিশিয়ালাইজেশন হল একটি ভেরিয়েবলে প্রাথমিক মান অ্যাসাইন করা। যখন আপনি একটি ভেরিয়েবল ডিক্লেয়ার করেন, তখন আপনি সেটির মান নির্ধারণ করতে পারেন। Groovy তে আপনি যে কোনো সময় ভেরিয়েবল ইনিশিয়ালাইজ করতে পারেন এবং এটি একে ডাইনামিক টাইপিংয়ের মাধ্যমে মান গ্রহণ করতে সাহায্য করে।
ভেরিয়েবল ইনিশিয়ালাইজেশনের উদাহরণ:
def name = "Groovy" // ভেরিয়েবল ডিক্লেয়ার এবং ইনিশিয়ালাইজেশন
def age = 25
এখানে name
ভেরিয়েবলটি "Groovy" এবং age
ভেরিয়েবলটি ২৫ দিয়ে ইনিশিয়ালাইজ করা হয়েছে।
Groovy তে টাইপ নির্ধারণ করার দরকার নেই, অর্থাৎ আপনি ভেরিয়েবল ডিক্লেয়ার করার সময় টাইপ উল্লেখ না করলেও চলবে। Groovy এই টাইপকে ডাইনামিকভাবে নির্ধারণ করে।
উদাহরণ:
def name = "Groovy" // Groovy এটি একটি String টাইপ হিসাবে ধরবে
def age = 25 // Groovy এটি একটি Integer টাইপ হিসাবে ধরবে
এখানে, name
এর টাইপ String
এবং age
এর টাইপ Integer
স্বয়ংক্রিয়ভাবে নির্ধারণ করা হয়েছে।
Groovy তে আপনি ভেরিয়েবল ইনিশিয়ালাইজেশন করার সময় এক্সপ্রেশন ব্যবহার করতে পারেন। এক্সপ্রেশনটি মান রিটার্ন করবে, এবং সেই মানটি ভেরিয়েবলে অ্যাসাইন করা হবে।
উদাহরণ:
def result = 10 + 5 // এক্সপ্রেশন ব্যবহার করে ভেরিয়েবল ইনিশিয়ালাইজেশন
println result // আউটপুট হবে 15
এখানে, 10 + 5
একটি এক্সপ্রেশন যা ১৫ রিটার্ন করে এবং তা result
ভেরিয়েবলে অ্যাসাইন করা হয়।
Groovy তে, আপনি বিভিন্ন ধরনের ডেটা টাইপের ভেরিয়েবল ডিক্লেয়ার এবং ইনিশিয়ালাইজ করতে পারেন, যেমন String
, Integer
, Boolean
, ইত্যাদি।
উদাহরণ:
def name = "Groovy" // String টাইপ
def age = 25 // Integer টাইপ
def isActive = true // Boolean টাইপ
def height = 5.9 // Double টাইপ
এখানে, আমরা চারটি আলাদা টাইপের ভেরিয়েবল ডিক্লেয়ার এবং ইনিশিয়ালাইজ করেছি।
def
কীওয়ার্ড ব্যবহার করে ভেরিয়েবল ডিক্লেয়ার করা হয়। টাইপ ডাইনামিকভাবে নির্ধারিত হয়।Groovy এর এই বৈশিষ্ট্যগুলি কোড লেখাকে আরও সহজ এবং দ্রুততর করে, এবং ডেভেলপারদের জন্য একটি সুবিধাজনক পরিবেশ সরবরাহ করে।
def
KeywordGroovy একটি ডাইনামিক টাইপিং ভাষা, যার মানে হলো আপনি ভেরিয়েবল বা ফাংশন ডিক্লেয়ার করার সময় টাইপ নির্ধারণ করতে হয় না। Groovy তে Type Inference এবং def
কীওয়ার্ড ব্যবহারের মাধ্যমে টাইপ নির্ধারণের প্রক্রিয়া অনেক সহজ হয়ে যায়। Groovy অটোমেটিকভাবে ভেরিয়েবলের টাইপ অনুমান করে, যার ফলে কোড লেখার সময় আপনি টাইপের ব্যাপারে চিন্তা না করেও কোড লিখতে পারেন।
টাইপ ইনফারেন্স একটি বৈশিষ্ট্য, যেখানে Groovy স্বয়ংক্রিয়ভাবে ভেরিয়েবলের টাইপ নির্ধারণ করে। আপনি একটি ভেরিয়েবল ডিক্লেয়ার করার সময় তার টাইপ উল্লেখ না করলেও Groovy সেই ভেরিয়েবলের মান দেখে তার টাইপ অনুমান করে নেয়।
Groovy তে টাইপ ইনফারেন্সের মাধ্যমে আপনি সহজে এবং দ্রুত কোড লিখতে পারেন, কারণ এতে টাইপের বিষয়ে কোনো নির্দিষ্ট নিয়ম বা বিবৃতি প্রয়োজন হয় না।
def number = 10 // Groovy টাইপ ইনফারেন্সের মাধ্যমে number এর টাইপ 'Integer' হবে
def name = "John" // Groovy 'String' টাইপ অনুমান করবে
def price = 20.5 // Groovy 'Double' টাইপ অনুমান করবে
println number // Output: 10
println name // Output: John
println price // Output: 20.5
এখানে def
কীওয়ার্ড ব্যবহার করা হয়েছে, তবে টাইপ explicitly উল্লেখ করা হয়নি। Groovy প্রতিটি ভেরিয়েবল দেখে তার টাইপ সঠিকভাবে অনুমান করেছে।
def
Keyword (ডিফ কীওয়ার্ড)Groovy তে def
কীওয়ার্ড একটি গুরুত্বপূর্ণ অংশ যা ব্যবহার করে আপনি ডাইনামিকভাবে টাইপেড ভেরিয়েবল এবং ফাংশন ডিফাইন করতে পারেন। এটি একটি সাধারণ কীওয়ার্ড যা Groovy তে টাইপ অজানা ভেরিয়েবল বা ফাংশন ডিক্লেয়ার করতে ব্যবহৃত হয়। যখন আপনি def
ব্যবহার করেন, তখন Groovy স্বয়ংক্রিয়ভাবে ভেরিয়েবল বা ফাংশনের টাইপ অনুমান করে নেয়।
def
এর ব্যবহার:ভেরিয়েবল ডিক্লেয়ারেশন (Variable Declaration):def
দিয়ে আপনি টাইপ নির্ধারণ না করেও ভেরিয়েবল ডিক্লেয়ার করতে পারেন। Groovy তার মান দেখে ভেরিয়েবলের টাইপ অনুমান করে।
উদাহরণ:
def x = 5 // 'Integer' টাইপ অনুমান করবে
def y = "Hello" // 'String' টাইপ অনুমান করবে
ফাংশন ডিক্লেয়ারেশন (Function Declaration):def
দিয়ে আপনি একটি ফাংশনও ডিক্লেয়ার করতে পারেন। এতে ফাংশনের রিটার্ন টাইপ উল্লেখ করার প্রয়োজন পড়ে না, Groovy ফাংশন রিটার্নের ভিত্তিতে টাইপ অনুমান করে।
উদাহরণ:
def add(a, b) { // Groovy এখানে 'Integer' টাইপ অনুমান করবে যদি a এবং b Integer হয়
return a + b
}
def result = add(10, 5) // result হবে Integer টাইপ
println result // Output: 15
এখানে, add
ফাংশনের টাইপ Groovy স্বয়ংক্রিয়ভাবে অনুমান করবে, কারণ আমরা টাইপ উল্লেখ করিনি। ফাংশনটি যখন কল হবে, তখন Groovy প্যারামিটারদের মানের উপর ভিত্তি করে তার টাইপ অনুমান করবে।
লিস্ট এবং ম্যাপ ডিক্লেয়ারেশন (List and Map Declaration):
Groovy তে আপনি def
ব্যবহার করে লিস্ট এবং ম্যাপ ডিক্লেয়ার করতে পারেন এবং Groovy স্বয়ংক্রিয়ভাবে তাদের টাইপও অনুমান করবে।
উদাহরণ:
def numbers = [1, 2, 3, 4] // Groovy List হিসেবে ইনফার করবে
def person = [name: "John", age: 30] // Groovy Map হিসেবে ইনফার করবে
println numbers // Output: [1, 2, 3, 4]
println person // Output: [name:John, age:30]
def
ব্যবহার করার সুবিধাdef
দিয়ে টাইপ ডিক্লেয়ার করার প্রয়োজন না থাকায়, কোড দ্রুত লেখা যায় এবং কোড কমপ্যাক্ট হয়ে যায়।def
এর মাধ্যমে কোড লেখা সহজ এবং কমপ্যাক্ট হয়, যা রিডেবিলিটি এবং রক্ষণাবেক্ষণ সহজ করে।Groovy তে টাইপ ইনফারেন্স এবং def
কীওয়ার্ড কোড লেখার সময় টাইপ নির্ধারণে সহজতা আনে। Groovy এর টাইপ ইনফারেন্সের মাধ্যমে টাইপ উল্লেখ না করেও আপনি ভেরিয়েবল ডিক্লেয়ার করতে পারেন, এবং def
ব্যবহার করে ফাংশন বা ভেরিয়েবল ডিক্লেয়ার করলে Groovy স্বয়ংক্রিয়ভাবে টাইপ অনুমান করে। এটি Groovy কে একটি ডাইনামিক এবং নমনীয় ভাষা হিসেবে গড়ে তোলে, যা কোড লেখার সময় সহজ এবং দ্রুত।
Groovy তে Strings, Numbers, এবং Collections ব্যবহারের জন্য বেশ কিছু শক্তিশালী বৈশিষ্ট্য রয়েছে, যা Java এর তুলনায় অনেক সহজ এবং বেশি নমনীয়। Groovy এর সিনট্যাক্স এবং কোডিং স্টাইল সহজ ও প্রাকৃতিক, যা ডেভেলপারদের দ্রুত কোড লেখার সুযোগ দেয়। নিচে Groovy তে Strings, Numbers, এবং Collections ব্যবহারের বিস্তারিত আলোচনা করা হলো।
Groovy তে Strings লেখার জন্য Java এর মতো " "
বা ' '
ব্যবহার করা হয়, তবে Groovy তে স্ট্রিং ইন্টারপোলেশন একটি শক্তিশালী ফিচার। এর মাধ্যমে স্ট্রিং এর মধ্যে ভেরিয়েবলগুলো সরাসরি ব্যবহার করা সম্ভব।
Groovy তে Strings এর জন্য সাধারণভাবে double quotes অথবা single quotes ব্যবহার করা যায়।
উদাহরণ:
// Double quotes (string interpolation)
def name = "Groovy"
println "Hello, $name!" // Output: Hello, Groovy!
// Single quotes (no interpolation)
def message = 'Hello, Groovy!'
println message // Output: Hello, Groovy!
Groovy Strings এ অনেক বিল্ট-ইন মেথড রয়েছে, যা Java এর তুলনায় অনেক সহজ।
.toUpperCase()
, .toLowerCase()
, .reverse()
, .trim()
, .replace()
, .substring()
ইত্যাদি মেথড পাওয়া যায়।উদাহরণ:
def text = " Hello, Groovy! "
println text.trim() // Output: "Hello, Groovy!"
println text.toUpperCase() // Output: "HELLO, GROOVY!"
println text.reverse() // Output: "!yvoorg ,olleH"
Groovy তে Numbers (অর্থাৎ, Integer
, Double
, BigDecimal
ইত্যাদি) সাধারণভাবে Java এর মতো ব্যবহার করা হয়। তবে Groovy তে সংখ্যা গুলোর সাথে একাধিক অপারেশন সহজে করা যায়, যেমন গণনা এবং ফরম্যাটিং।
Groovy তে আপনি সহজেই int, float, double ইত্যাদি ব্যবহার করতে পারেন, এবং Groovy নিজে তা টাইপ নির্ধারণ করে নেয়। যদি আপনি BigDecimal
ব্যবহার করতে চান, তবে সেটি অবশ্যই স্পষ্টভাবে ডিফাইন করতে হবে।
উদাহরণ:
// Integer and Double
def num1 = 25
def num2 = 3.14
println num1 + 5 // Output: 30
println num2 * 2 // Output: 6.28
Groovy তে BigDecimal
ব্যবহার করে বড় সংখ্যাগুলির সঠিক গণনা করা যেতে পারে, যেমন অর্থনৈতিক হিসাব বা পরিমাণের ক্ষেত্রে।
উদাহরণ:
def bigNum1 = 100.50
def bigNum2 = 0.10
def result = new BigDecimal(bigNum1.toString()).subtract(new BigDecimal(bigNum2.toString()))
println result // Output: 100.40
Groovy তে সংখ্যা নিয়ে কাজ করার জন্য অনেক মেথড রয়েছে, যেমন .abs()
, .round()
, .max()
, .min()
, .pow()
ইত্যাদি।
উদাহরণ:
def x = -10
println x.abs() // Output: 10
println x.pow(2) // Output: 100
Groovy তে Collections খুবই সহজ এবং শক্তিশালী ভাবে ব্যবহৃত হয়। এটি Lists, Maps, এবং Sets সহ বিভিন্ন ধরনের কালেকশন ব্যবস্থাপনা সহজ করে দেয়। Groovy তে এগুলি একটি সাধারণ সিনট্যাক্সের মাধ্যমে তৈরি করা যায় এবং Java এর তুলনায় অনেক দ্রুত এবং সহজে কাজ করা যায়।
Groovy তে Lists তৈরি করা খুবই সহজ। এখানে আপনি একাধিক উপাদান তালিকাভুক্ত করতে পারেন এবং পরে তাদের অ্যাক্সেস করতে পারেন।
উদাহরণ:
def myList = [1, 2, 3, 4, 5]
println myList // Output: [1, 2, 3, 4, 5]
println myList[0] // Output: 1
myList << 6 // Add 6 to the list
println myList // Output: [1, 2, 3, 4, 5, 6]
Groovy তে Maps ব্যবহার করার জন্য খুব সহজ সিনট্যাক্স রয়েছে। এখানে key-value pair আকারে ডেটা সংরক্ষণ করা হয়।
উদাহরণ:
def myMap = [name: "Groovy", type: "Dynamic"]
println myMap // Output: [name:Groovy, type:Dynamic]
println myMap['name'] // Output: Groovy
myMap['version'] = '3.0' // Add a new entry
println myMap // Output: [name:Groovy, type:Dynamic, version:3.0]
Sets ব্যবহার করে আপনি ইউনিক মান সংরক্ষণ করতে পারেন, যেখানে একই মান একাধিকবার উপস্থিত থাকতে পারে না।
উদাহরণ:
def mySet = [1, 2, 3, 4, 5] as Set
println mySet // Output: [1, 2, 3, 4, 5]
mySet.add(6) // Add 6 to the set
println mySet // Output: [1, 2, 3, 4, 5, 6]
Groovy তে Collections এর উপর অনেক ধরনের ফাংশনাল অপারেশন করা যেতে পারে, যেমন .each()
, .collect()
, .find()
, .filter()
, .sort()
ইত্যাদি।
উদাহরণ:
def nums = [1, 2, 3, 4, 5]
nums.each { println it } // Output: 1 2 3 4 5 (one by one)
def doubled = nums.collect { it * 2 }
println doubled // Output: [2, 4, 6, 8, 10]
def evenNumbers = nums.findAll { it % 2 == 0 }
println evenNumbers // Output: [2, 4]
Groovy তে Strings, Numbers, এবং Collections খুবই সহজ এবং শক্তিশালীভাবে ব্যবহৃত হয়। Groovy এর শক্তিশালী ফিচারগুলি, যেমন স্ট্রিং ইন্টারপোলেশন, নমনীয় টাইপিং, এবং কলেকশন মেথড, কোড লেখাকে অনেক সহজ এবং দ্রুত করে তোলে। Groovy এর উন্নত ফিচারগুলি Java কোডের তুলনায় আরও সহজ এবং পাঠযোগ্য, যা ডেভেলপমেন্টের গতি বাড়ায় এবং কোডিংকে আরও কার্যকরী করে তোলে।
common.read_more